O módulo CopyToGDriver_ConfigFunctions.sh é responsável por implementar as funções de configuração e parsing de parâmetros do projeto CopyToGDriver.
Ele centraliza toda a lógica relacionada à leitura de argumentos de linha de comando, confirmação de execução, detecção de ambiente e exibição de ajuda.
detect_platform()Detecta automaticamente o sistema operacional e retorna um dos seguintes valores:
| Sistema | Valor retornado |
|---|---|
| Linux | linux |
| macOS | macos |
| Windows (Git Bash, Cygwin, MSYS) | windows |
| Outros | unknown |
O resultado é armazenado na variável global PLATFORM e utilizado em várias funções para ajustar o comportamento do script.
write_color_output()Função utilitária para exibir mensagens coloridas no terminal, compatível com múltiplas plataformas.
Parâmetros:
$1: mensagem a ser exibida.$2: cor desejada (Red, Green, Yellow, Blue, Magenta, Cyan).No Windows, o suporte a cores ANSI é automaticamente desativado se o terminal não for compatível.
Exemplo de uso:
write_color_output "Sincronização concluída com sucesso!" "Green"
confirm_sync()Solicita confirmação interativa do usuário antes de iniciar a sincronização, exibindo as informações detectadas.
Fluxo de execução:
s ou S para continuar).Exemplo:
Deseja sincronizar a pasta corrente '/home/user/docs'? (s/N): s
Prosseguindo com a sincronização...
⚠️ No modo automático, a confirmação é pulada e o processo continua sem interação.
calculate_defaults()Define valores padrão caso não tenham sido informados pelo usuário:
| Variável | Descrição | Valor Padrão |
|---|---|---|
DEFAULT_LOCAL_FOLDER |
Pasta local usada para sincronização. | Diretório atual (pwd) |
DEFAULT_REMOTE_FOLDER |
Caminho remoto de destino no Drive. | rclone/<nome_da_pasta_atual> |
DEFAULT_REMOTE_FOLDER (fallback) |
Caso o nome não possa ser determinado. | rclone/sync-<data> |
Essa função é executada automaticamente durante o parsing de parâmetros.
is_effectively_empty()Verifica se a pasta local está efetivamente vazia, ignorando scripts e arquivos internos do sistema CopyToGDriver.
Critérios ignorados:
CopyToGDriver_*.shCopyToGDriver_CopyCurrent.shCopyToGDriver_Restore.shCopyToGDriver_ignore.txtSe não encontrar arquivos úteis, retorna 0 (verdadeiro).
Uso típico:
if is_effectively_empty "$LOCAL_FOLDER"; then
echo "Pasta está vazia — restauração necessária."
fi
show_help()Exibe a ajuda completa e estruturada com exemplos de uso.
Exemplo de saída resumida:
🧭 CopyToGDriver - Ajuda de Uso
Uso: CopyToGDriver.sh [OPÇÕES]
OPÇÕES DISPONÍVEIS:
-l, --local-folder DIR Define pasta local
-r, --remote-name NAME Define remote (padrão: gdriver)
-f, --remote-folder PATH Define pasta remota
-a, --auto-create Cria pastas automaticamente
-c, --clean-cache Limpa cache antes da sincronização
-n, --dry-run Simula execução (sem enviar nada)
-v, --verbose Ativa logs detalhados
-R, --resync Força resincronização completa
-h, --help Exibe esta ajuda
parse_parameters()Função central de leitura e interpretação dos parâmetros passados ao script.
Função: lê e interpreta as opções da linha de comando, aplicando valores padrão quando necessário.
| Opção | Nome longo | Descrição |
|---|---|---|
-l |
--local-folder |
Define a pasta local a ser sincronizada |
-r |
--remote-name |
Define o nome do remoto do rclone |
-f |
--remote-folder |
Define a pasta remota de destino |
-n |
--dry-run |
Ativa modo simulação |
-v |
--verbose |
Ativa logs detalhados |
-R |
--resync |
Força resincronização completa |
-a |
--auto-create |
Cria pastas ausentes no destino |
-c |
--clean-cache |
Limpa cache antes da sincronização |
-h |
--help |
Exibe ajuda e encerra o programa |
confirm_sync() para confirmação interativa.CopyToGDriver_Restore.sh.Ao detectar que a pasta local contém apenas arquivos do sistema, o script tenta restaurar o conteúdo original automaticamente:
CopyToGDriver_Restore.sh no mesmo diretório.--remote-folder "<nome_da_pasta>".| Código | Ação |
|---|---|
11 |
Restauração concluída, sincronização abortada para evitar sobrescrita. |
0 |
Restauração completa, sincronização encerrada normalmente. |
| Outro | Erro na restauração — execução interrompida. |
| Variável | Descrição | Origem |
|---|---|---|
LOCAL_FOLDER |
Caminho local da pasta a sincronizar | Parâmetro -l ou padrão |
REMOTE_NAME |
Nome do remoto do rclone | Parâmetro -r ou padrão |
REMOTE_FOLDER |
Caminho remoto no Drive | Parâmetro -f ou padrão |
DRY_RUN |
Define modo simulação | Flag -n |
VERBOSE |
Exibe logs detalhados | Flag -v |
AUTO_CREATE |
Cria pastas automaticamente | Flag -a |
CLEAN_CACHE |
Limpa cache antes de sincronizar | Flag -c |
RESYNC |
Força resincronização completa | Flag -R |
SHOW_HELP |
Exibe ajuda e encerra o script | Flag -h |
| Sistema | Suporte | Observações |
|---|---|---|
| Linux | ✅ Completo | Suporte nativo a cores ANSI e paths POSIX |
| macOS | ✅ Completo | Comportamento idêntico ao Linux |
| Windows (Git Bash) | ✅ Parcial | Cores ANSI podem não funcionar em todos os terminais |
| Outros | ⚠️ Parcial | Detectado como “unknown”; comportamento básico |
| Campo | Valor |
|---|---|
| Script | CopyToGDriver_ConfigFunctions.sh |
| Versão | 0.1.0 |
| Autores | Paulo SSPacheco + ChatGPT (GPT-5) |
| Data | 01/11/2025 |
| Licença | Uso pessoal / interno |
© 2025 Paulo SSPacheco + ChatGPT (GPT-5) — Todos os direitos reservados.